<?php namespace system\middleware;

use houdunwang\middleware\build\Middleware;
use houdunwang\request\Request;
use system\model\Config as ConfigModel;
class Config implements Middleware{
	//执行中间件
	public function run($next) {
//         echo "中间件执行了";
		//首先先判断是否进行了安装，如果没有安装就进入不在系统的其他地方，然后是除了system\install这个安装类
		if(! is_file('lock.php') && !preg_match("#system/install#i",Request::get('s'))){
			go('system.install.copyright');
		}
//		当环境进行安装了就在加载下面的方法
		if(is_file('lock.php')){
			//设置系统配置项
			$this->setSystemConfig();
			//设置微信配置项
			$this->setWeiXinConfig();
		}
         $next();
	}
	//设置系统配置项
	private function setSystemConfig(){
		$model=ConfigModel::find(1);
		$field=$model?json_decode($model['system'],true):[];
//		p($field);die();打印结果如下
//		Array
//		(
//			[csrf_token] =>
//				[webname] => 哈哈哈
//		[description] => 嘿嘿
//		[email] => 2760360639@qq.com
//		[tel] => 6666666666666666666666666666
//    [icp] => 京icp-akaksks88888888888888
//		[template] => default
//    [article_num] => 3
//)
		//系统v函数，需要看函数，追踪代码
		v( 'config' , $field );//v函数这里是将$field就是上面的数组的内容赋值给config这个变量，然后当调用这个变量中的数据的时候是通过点出来的如：config.template就是default
//		p(v('config.template'));die;//default
	}
	//这只微信配置项
	private function setWeiXinConfig(){
		$model=ConfigModel::find(1);
		$field=$model?json_decode($model['weixin'],true):[];
		//在这里我们要存储到配置项中，这样设置，相当于覆盖掉框架原来的wechat配置
		//我们要的不是要覆盖，而是我们的优先级高
		//\Config::set('wechat',$field);
		//我们需要的是进行合并，让我们自己在后台设置的优先级高于框架wechat设置,所以要将其进行合并
		//注意当我们的houdunwang\wechat里面进行了改动那就重新下载WeChat，使用命令
		\Config::set('wechat',array_merge(\Config::get('wechat'),$field));
//		\houdunwang\config\Config::set('wechat',$field);
		//Config::get('wechat.token')
//		\Config::set();
	}
}